/**
 * 延时执行函数
 * @description 提供多种延时实现方式，支持异步和同步用法
 * @param {number} ms - 延时时间（毫秒）
 * @returns {Promise<void>} 返回 Promise 用于异步等待
 * @example
 * // 异步使用
 * await sleep(1000); // 等待大约1秒
 *
 * // 同步阻塞（不推荐）
 * sleep.sync(1000); // 阻塞大约1秒
 */
const sleep = (ms) => {
    return new Promise(resolve => setTimeout(resolve, ms));
};
/**
 * 同步阻塞的延时实现（不推荐使用）
 * 使用 requestAnimationFrame 代替 while 循环，减少 CPU 占用
 */
sleep.sync = (ms) => {
    const start = Date.now();
    const loop = () => {
        if (Date.now() - start >= ms)
            return;
        requestAnimationFrame(loop);
    };
    loop();
};

export { sleep };
